package cn.cdeden.common.oss.enumd;

import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @ProjectName : KnowCore
 * @Package : cn.cdeden.common.oss.enumd
 * @ClassName : OssMoType
 * @Author : Yu.
 * @Description : // oss 文件储存的模块 枚举
 * @Date : 2024/12/3 17:01
 * @Version : 1.0
 */
public enum OssModuleType {

    Temporary("temporary", "临时模块"),

    public_images("publicImages","图片文件"), // 用户与可以直接看的文件  例如头像，背景图，缩略图，封面图

    Personal("personal","个人模块"),

    Team("team","团队模块"),

    TeamTemplate("teamTemplate","团队模板"),

    Enterprise("enterprise","企业模块"),

    Dify("dify","dify预览模块"),

    Template("template", "文件模版模块"),

    From_doc("fromDoc", "表单文档"),

    Qa("qa", "AI问答附件"),

    Material("material", "资源模块"),

    Share("share", "分享模块")
    ;

    private final String code;
    private final String name;


    private static final Map<String, OssModuleType> BY_CODE = new HashMap<>();

    static {
        for (OssModuleType value : OssModuleType.values()) {
            BY_CODE.put(value.getCode(), value);
        }
    }

    OssModuleType(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return name;
    }

    /**
     * @author Yu.
     * @Description // 判断是否存在这个类型
     * @Date 2024/12/4 15:54
     * @param type
     * @return boolean
     **/
    public static boolean findCoed(String code) {
        if (StringUtils.isBlank(code) || !BY_CODE.containsKey(code)) {
            return false;
        }
        return true;
    }

    public static OssModuleType findCoedInfo(String code) {
        if (StringUtils.isBlank(code) || !BY_CODE.containsKey(code)) {
            return null;
        }
        return BY_CODE.get(code);
    }


}
